<template>
  <div id="app">
    <div class="container">
      <!-- 顶部框模块 -->
      <div class="form-group">
        <div class="input-group">
          <h3>品牌管理</h3>
        </div>
      </div>
      <!-- 数据表格 -->
      <!-- <table border="1" id="ppgltable">
        <thead>
          <tr>
            <th>编号</th>
            <th>资产名称</th>
            <th>价格</th>
            <th>创建时间</th>
            <th>操作</th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="item in list" :key="item.id">
            <td>{{item.id}}</td>
            <td>{{item.name}}</td>
            <td :class="{red:item.price>100}">{{item.price}}</td>
            <td>{{forMoment(item.time) }} </td>
            <td><a href="javascript:;" @click="del(item.id)">删除</a></td>
          </tr>
          <tr v-if="!list.length">
             <td colspan="5" style="text-align: center">暂无数据</td>
          </tr>
        </tbody>
          
        <tfoot >
          <tr>
           <td colspan="1">统计：</td>
           <td colspan="2">总价钱为：{{total}}</td>
           <td colspan="2">平均价：{{avg}}</td>
          </tr>
        </tfoot>
     </table> -->
     <Table :columns="columns" :data="list" border 
     show-summary :summary-method="handleSummary"
     > 
    <template slot-scope="{list}" slot="del">
            <Button type="error" @click="del(list.id)">删除</Button>
    </template>
     </Table>
      <!-- 添加资产 -->
  <Input v-model="name" placeholder="资产名称" style="width: 300px" />
<Input v-model="price" placeholder="价格" style="width: 300px" />        
    <Button type="success" @click.prevent="add">添加资产</Button>
    </div>
  </div>
</template>

<script>
import moment from 'moment'
export default {
  data() {
    return {
      name: "", // 名称
      price: 0, // 价格
      list: JSON.parse(localStorage.getItem('list') || '[]'),
      columns:[{title:'编号',key:'id'},{title:'资产名称',key:"name"},{title:'价格',key:"price"},{title:'创建时间',key:"time"},{title:'操作',key:"del",slot:"del"}]
    };
  },
methods:{
    add(){
    if(this.name==""||this.price<=0){
            return alert('资产名称为空或价格不合理！')
        }
        let id=this.list.length<=0?100 : this.list[this.list.length-1].id+1;
    this.list.push({
        id:id,
        name:this.name,
        price:this.price,
        time:new Date()
    })
    // 清空表单
    this.name=''
    this.price=0
    },
    forMoment(date){
     return   moment(date).format('YYYY-MM-DD')
    },
    del(id){
   let index= this.list.findIndex(ele=>ele.id=id)
   this.list.splice(index,1)
    },
    handleSummary ({ columns, data }) {
    const sums = {};
    columns.forEach((column, index) => {
        const key = column.key;
        if (index === 0) {
            sums[key] = {
                key,
                value: '总价'
            };
            return;
        }
        const values = data.map(item => Number(item[key]));
        if (!values.every(value => isNaN(value))) {
            const v = values.reduce((prev, curr) => {
                const value = Number(curr);
                if (!isNaN(value)) {
                    return prev + curr;
                } else {
                    return prev;
                }
            }, 0);
            sums[key] = {
                key,
                value: v + ' 元'
            };
        } else {
            sums[key] = {
                key,
                value: 'N/A'
            };
        }
    });

    return sums;
}
 },
computed:{
    total(){
        let num=0
        this.list.forEach(ele=>{
            num+=parseFloat(ele.price) 
        })
        return num
    },
    avg(){
        if(this.list.length==0) return 0;
      return  (this.total / this.list.length).toFixed(2)
    }
},
watch:{
  list:{
      deep:true,
      handler(n){
      localStorage.setItem('list',JSON.stringify(this.list))
      n.forEach(ele=>{
          ele.time=this.forMoment(ele.time)
      })
      }
  }
}
};
</script>
<style scoped lang="less">
.red{
  color: red;
}
#ppgltable{
    border-collapse: collapse;
    tr{
        height: 40px;
    }
    td{
        width: 100px;
    }

}
    .ivu-input-wrapper{
         margin-top: 10px;
        margin-right: 10px; 
    }
    Button{
        margin-top: 10px;
    }
</style>
